package com.gxa.learning.core.pojo;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.persistence.Column;
import java.util.Date;
import java.util.List;

/**
 * 评论的对象
 *
 * @author YXQ
 * @date 2021/12/13 14:33
 */
@AllArgsConstructor
@NoArgsConstructor
@Data
public class CommentVo {
    /**
     * 评论的编号
     */
    @Column(name = "id")
    private Long id;

    /**
     * 用户的id
     */
    @Column(name = "user_id")
    private Long userid;

    /**
     * 辅助字段
     * 给前端返回的用户名
     */
    private String userName;

    /**
     * 辅助字段
     * 给前端返回的用户头像
     */
    private String userHeadPhoto;

    /**
     * 课程的编号，在XX课程下的评论
     */
    @Column(name = "course_id")
    private Long courseId;

    /**
     * 培训的编号，在XX培训下的评论
     */
    private Long projectId;

    /**
     * 评论的内容
     */
    @Column(name = "remark")
    private String remark;

    /**
     * 直接评论->pId为0,回复->pid为一级评论的编号
     */
    @Column(name = "pId")
    private Long pId;

    /**
     * 直接评论课程的是一级评论，不带谁回复了谁
     * 回复1级评论时，不带谁回复了谁
     * 回复2级评论时，才带上谁回复了谁
     * 被回复的人
     */
    @Column(name = "reply")
    private String reply;

    /**
     * 点赞数
     */
    @Column(name = "star")
    private Long star;

    /**
     * 发表评论的时间
     */
    @Column(name = "create")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date create;

    /**
     * 这个并不是实体类中实际存在的字段，也不是Hash中实际存在的字段
     * 只是作为单独的用户,是否点赞过某条评论给前端返回数据时的参数
     * 是否点赞1.点赞2.未点赞
     */
    private Integer isLike;

    /**
     * 评论下的二级评论
     */
    private List<CommentVo> childrenCommentVo;
}
